/*************************************************************************
	> File Name: 3.cout.cpp
	> Author: huguang
	> Mail: hug@haizeix.com
	> Created Time: 
 ************************************************************************/

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <queue>
#include <stack>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <vector>

#define BEGINS(x) namespace x {
#define ENDS(x) }

BEGINS(haizei)

class ostream {
public :
    ostream &operator<<(int x);
    ostream &operator<<(char ch);
};

ostream &ostream::operator<<(int x) {
    printf("%d", x);
    return *this;
}

ostream &ostream::operator<<(char x) {
    printf("%c", x);
    return *this;
}

ostream cout;
const char endl = '\n';

ENDS(haizei)

int main() {
    int n = 123;
    std::cout << n << std::endl;
    haizei::cout << n << haizei::endl;
    return 0;
}
